home *** CD-ROM | disk | FTP | other *** search
- ____________________________
- | |
- | CBEEP - DBEEP |
- | Replace BEEP With a Flash! |
- |____________________________|
-
- Copyright (C) 1991
- >>-Swift-Ware->
-
- Version 1.2
- April 1991
-
- I. Installation and Use
-
- The primary programs in this package are CBEEP.COM and DBEEP.COM.
- They will usually be referred to without their .COM extensions
- for convenience. DBEEP is first used to produce a new renamed
- version of any program which has the beep replaced by a flash.
- Then CBEEP is loaded into the computer's memory. CBEEP is the
- program which actually makes the flash when called upon to do so
- by the debeeped program. Finally the debeeped version of the
- program is loaded and run. After some initial preparation, the
- use of the debeeped version of a program can be made completely
- automatic and transparent to the user.
-
- DBEEP
-
- This will start execution of the debeeping program. DBEEP will
- display a menu where <F1> may be pressed to display a help
- screen, <F2> may be pressed to start the debeeping process, and
- <F3> may be pressed to install CBEEP in the computer. For now,
- let's wait a bit before installing CBEEP and go on to create the
- debeeped version of the program. Press <F2> and you will be
- prompted to enter the name of the program to be debeeped. In our
- example, the program was NOISY.EXE in subdirectory PROGRAMS on
- Drive C:, so enter
-
- C:\PROGRAMS\NOISY.EXE
-
- You will be prompted for the name of the
- new (debeeped) version of the program which you want to create.
- It is very important to use the same extension
- but the name should be different from the original name. In our
- case we might select the name NOTNOISY.EXE as our new program.
- After you enter the new program name, DBEEP will begin the
- debeeping process. You will see from the display on the screen
- that the process has begun and the display will indicate when the
- debeeping process has finished; this may take a minute or so.
- After DBEEP has finished, you may press <F3> to "launch" CBEEP.
- This places into the computer's memory the program which produces
- the flash when called upon to do so by the debeeped version of
- the program. As part of the process of installing or launching
- CBEEP, the CBEEP menu will be displayed which will allow
- selecting the size and duration of the flash. Press the number
- keys as indicated to select your preferred choice. Finally,
- after completing the creation of the debeeped program (which you
- have given a new name) and installing CBEEP, you are ready to
- exit from DBEEP which may be done by pressing the <Esc> key. You
- will now be back at the DOS prompt and may run your new debeeped
- version of the program by entering its new name. In our example,
- merely enter NOTNOISY. That's all there is to it.
-
- In some cases, you may see the message "NO BEEPERS FOUND" even
- though you know that the program produces beeps. In most cases,
- this will not cause a problem and the beeps will properly be
- intercepted and replaced by flashes. A further discussion of
- this will be found in the section for Advanced Topics.
- A shortcut which can be used if you remember the
- number of the menu item you used to select the flash size and
- duration is to skip the use of DBEEP and just enter CBEEP /n from
- the DOS command line, where for "n" you enter the menu item
- selection. For example, to get a large, 1/2 sec. flash, enter
- CBEEP /2.
-
- CBEEP.COM is a terminate-and-stay-resident (TSR) program which is
- called by the debeeped program. DBEEP.COM searches the original
- user's program and replaces all code which generates beeps with
- code which generates a software interrupt. Normally interrupt
- 60H is used, but CHGINT.COM may be used to select another
- interrupt if 60H causes interference with other users of the same
- interrupt. CBEEP, DBEEP, and CHGINT should be placed in the same
- subdirectory, and CHGINT run. That will display a menu allowing
- selection of an alternate interrupt number in the range 60H to
- 66H. You should be very careful about using interrupt 67H as it
- is used for LIM EMS (an Expanded Memory manager) in all versions
- of DOS beginning with DOS 2.0 although only officially reserved
- by DOS in DOS 4.0 and above.
-
- Beeps can be generated in several ways. The best-behaved method
- is to use DOS' BIOS services to send a BEL (character code 7) to
- the screen. An alternate method is directly to manipulate the
- hardware which controls the speaker. This is done by using the
-
- OUT instruction to change the two low order bits of port 61H to
- turn the speaker on and off. DBEEP looks for the code which
- generates such instructions and replaces it with a software
- interrupt (using either the default interrupt number of 60H or an
- alternate interrupt number selected via CHGINT), padding as
- needed with NOPs. A reasonableness check of surrounding data is
- made in order to distinguish code from data prior to replacing
- the beep codes. This technique for handling direct port writes
- was suggested by Dave Fallen's SILENCER program code.
-
- In some cases the message "NO BEEPERS FOUND" is produced by DBEEP
- even though the code being debeeped is known to produce beeps.
- This is generally caused by code which does not write directly to
- hardware ports but merely uses DOS or BIOS services to produce a
- beep by sending the BEL character to the screen. The interrupts
- used by these services are trapped by CBEEP and thus the beeps
- are properly converted into flashes even though no code is
- modified by DBEEP. The message "NO BEEPERS FOUND" thus indicates
- that no code replacement was necessary rather than that the
- program being debeeped doesn't have any beep-producing code.
-
- There are a few known limitations to this procedure. Compressed
- executable code will not generally allow the instructions to be
- properly identified. If the compression technique which has been
- used is known, it may be possible to uncompress the code, apply
- the debeeping program to the uncompressed version, and then
- recompress the debeeped version. Microsoft Windows code may
- cause problems. Programs which have been compressed can be
- identified (along with the compression technique used) by the
- utility CHK4COMP.EXE. Many commercial programs have been
- compressed by Microsoft's EXEPACK; these may be unpacked by using
- UPACKEXE.EXE. As of this writing, CHK4COMP could be obtained
- from CompuServe IBMSYS in CKH4.ZIP; UPACKEXE was also available
- from CompuServe IBMSYS in LZEX91.ZIP.
-
- V. Disclaimer
-
- The software and documentation in this packare are provided "As
- Is" without warranty of any kind. >>-Swift-Ware-> does not
- warrant, guarantee, or make any representations regarding the
- use, or the results of use, of this software. All risk taken in
- the use of this software is assumed by you, the user, and not by
- >>-Swift-Ware->, nor by any person or organization who may
- distribute this product.
-